package proyecto.DataAccessObject;

import java.util.List;

import javax.ejb.Remote;
import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;

import proyecto.EntityBeans.Evaluacion;


@Stateless
@Remote(EvaluacionDAORemote.class)
public class EvaluacionDAO implements EvaluacionDAORemote {

	@PersistenceContext
	EntityManager entityManager;


	public int save (Evaluacion evaluacion){		
		try{
			entityManager.persist(evaluacion);			
		} 
		catch(Exception e){
			e.printStackTrace();
		}	
		
		return evaluacion.getIdEvaluacion();
	}
	

	public Evaluacion findById(int id) {
		return entityManager.find(Evaluacion.class, id);
		
	}
	
		
	public void merge(Evaluacion evaluacion) {
		try{						
			entityManager.merge(evaluacion);
		} 
		catch(Exception e){
			e.printStackTrace();
		}
	}
	
	public List findByNota(String nota)
	{	     
	      return entityManager.createQuery("select e from Evaluacion e where e.nota = :nota").setParameter("nota", nota).getResultList();
	}
	
	public List findAll() {		
		return entityManager.createQuery("from Evaluacion").getResultList();
	}
	
	public List findByIdList(int id)
	   {	     
	      return entityManager.createQuery("select e from Evaluacion e where e.idEvaluacion = :idEvaluacion").setParameter("idEvaluacion", id).getResultList();
	   }
	
		
	public void remove(int idEvaluacion){	
		entityManager.remove(entityManager.find(Evaluacion.class, idEvaluacion));
	}
	
	public void refresh(Evaluacion evaluacion){
		entityManager.refresh(evaluacion);
	}
}
